Repository navigation
Conversation
|
Confidence: 4/5Behavior works end to end on macOS (real v0.0.14 install, real upgrade, failure paths), checks pass apart from environmental/pre-existing failures. Held back from 5 by size (about 1.7k lines, rewrites the public Checks run (worktree of PR head
Confidence bumps: Linux and Windows/PowerShell runs (no hosts here) and a brew/npm/cargo-driven SummaryReplaces the Bash/cargo-first root The code reads carefully and the offline tests exercise real code paths, with real PTYs for the CLI. The installer scripting is paranoid in a good way (validated version, tar inventory check, regular-file check, JSON escaping of the prefix). Mapflowchart TD
A[install.sh<br/>POSIX prebuilt installer] -->|embedded include_bytes| B[src/upgrade.rs]
B --> C[src/upgrade/progress.rs<br/>Working row]
B -->|receipt claims_path, flat vs cargo-home| A
D[npm/install.js<br/>progress, drain, errors] --- E[npm/install.test.js]
A --- F[scripts/install-ui.test.ts]
B --- G[scripts/upgrade-ui.test.ts<br/>real PTY]
H[Cargo.toml include, justfile, README]
Start at RegressionsNo functional regressions found. Things a maintainer should know:
MigrationsNot needed. Existing cargo-dist receipts ( Before merging
|



Summary
Beautify installation and
crabcode upgradeoutput using the supplied terminal reference: compact current/target version labels, whitespace, and an amber block/dotted progress row. Based directly on upstream main (bf5c111), independent of plugin PR #25.Workingrather than a fabricated percentage.NO_COLOR,TERM=dumb, and redirected output. Diagnostics stay on stderr; no alternate screen or cursor hiding.install.shwith a POSIX prebuilt installer using real release archive names, SHA256 verification, staged atomic binary replacement, and installation receipts.just test-upgrade-ui; extendjust test-releasewith shell installer coverage.UI preview (plain-text structure)
This is a layout illustration, not a claim that v0.0.15 was installed. Package-manager upgrades use an indeterminate
Workingrow because those tools do not expose a reliable end-to-end completion percentage. Existing cargo-dist-generated release installer assets are not rewritten.Validation
cargo fmt --all -- --check,git diff --check,cargo check: pass.cargo test --bin crabcode upgrade:: -- --test-threads=1: 25 pass.bun test --timeout 30000 scripts/release-workflow.test.ts scripts/install-ui.test.ts npm/install.test.js: 80 pass. An initial final rerun hit Bun's default 5-second test deadline under concurrent builds; the bounded 30-second rerun passed.cargo build --bin crabcode+bun test scripts/upgrade-ui.test.ts: 13 pass; exercises the compiled CLI in real PTYs and isolated install fixtures.node --test npm/install.test.js: 13 pass.sh -n install.sh: pass.--versionconfirmed. Host installation untouched.Full serial Rust unit suite: 1,844 passed, 1 failed, 3 ignored. The failure is
ui::components::chat::tests::test_edit_tool_renders_codex_style_diff_summary, which hardcodes/Users/carlo/Desktop/Projects/crabcode/README.mdand expects a relative filename on this checkout. The chat source is unchanged in this PR; the same failure was reproduced on unmodified upstreambf5c111in a separate worktree. Not claiming a globally green suite.Design audit and limits
Audited after implementation as requested. No further design changes requiring approval: inherited terminal theme, one amber accent, no panels/badges/decorative emoji, actual loading/error/no-op states, and bounded progress widths. Terminal palettes are user-controlled, so universal color contrast cannot be guaranteed;
NO_COLORis supported.Runtime tested on macOS. Linux/Windows execution and OS-signal cancellation during a download were not specifically exercised. No dependencies added. Do not merge automatically.